package io.xiaojl.xj2ee.modules.sys.service;

import java.util.Map;

import io.xiaojl.xj2ee.common.kit.PageWrapper;
import io.xiaojl.xj2ee.modules.sys.entity.SysConfigEntity;

/**
 * 
 * <p>Title: SysConfigService</p>  
 *
 * <p>Description: 系统配置信息表服务层</p>  
 *
 * @author jilong.xiao 
 * @date 2018年05月25日
 */
public interface SysConfigService {
	
	PageWrapper<SysConfigEntity> queryPage(Map<String, Object> params);
	
    /**
	 * 保存配置信息
	 */
	public void save(SysConfigEntity config);
	
	/**
	 * 更新配置信息
	 */
	public void update(SysConfigEntity config);
	
	/**
	 * 根据key，更新value
	 */
	public void updateValueByKey(String key, String value);
	
	/**
	 * 删除配置信息
	 */
	public void deleteBatch(Long[] ids);
	
	/**
	 * 根据key，获取配置的value值
	 * 
	 * @param key           key
	 */
	public String getValue(String key);
	
	/**
	 * 根据key，获取value的Object对象
	 * @param key    key
	 * @param clazz  Object对象
	 */
	public <T> T getConfigObject(String key, Class<T> clazz);

	/**  
	 * <p>Title: selectById</p>  
	 *
	 * <p>Description: </p>  
	 *
	 * @param id
	 * @return  
	 */ 
	SysConfigEntity selectById(Long id);
}

